package com.cmyshare.design.decoratorPattern;

/**
 * @version 1.0
 * @Author cmy
 * @Date 2023/12/26 16:19
 * @desc 装饰器：Decorator抽象类实现Person接口
 */
public abstract class Decorator implements Person {

    /**
     * Decorator维持一个指向Component对象的指针，并定义一个与Component接口一致的接口。
     */

    /**
     * 使用protected定义受保护的Component接口Person变量
     */
    protected Person person;

    /**
     * set方法加入Component接口Person，指向Person
     * @param person
     */
    public void setPerson(Person person) {
        this.person = person;
    }

    /**
     * 实现Component接口Person的eat方法
     */
    @Override
    public void eat() {
        //调用Component接口Person的eat方法
        person.eat();
    }
}
